/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.seguradora.service;

import br.com.seguradora.model.repository.impl.RepositoryFactoryImpl;
import br.com.seguradora.model.repository.RepositoryFactory;
import br.com.seguradora.exception.PersistenciaException;
import br.com.seguradora.model.Associado;
import br.com.seguradora.model.repository.TodosAssociados;
import br.com.seguradora.view.DisplayFilter;
import java.util.List;

/**
 *
 * @author Diego
 */
public class AssociadoService {

    private TodosAssociados todosAssociados;

    public AssociadoService() {
        RepositoryFactory repositoryFactory = new RepositoryFactoryImpl();
        todosAssociados = repositoryFactory.createAssociadoRepository();
    }

    public boolean inserir(Associado associado) throws PersistenciaException {
        return todosAssociados.inserir(associado);
    }

    public boolean atualizar(Associado associado) throws PersistenciaException {
        return todosAssociados.atualizar(associado);
    }

    public boolean excluir(Associado associado) throws PersistenciaException {
        return todosAssociados.excluir(associado);
    }

    public List<Associado> listarTodos(int... limits) throws PersistenciaException {
        return todosAssociados.listarTodos(limits);
    }

    public List<Associado> listarPeloNome(String nome, DisplayFilter displayFilter) throws PersistenciaException {
        return todosAssociados.listarPeloNome(nome, displayFilter);
    }

    public List<Associado> listarPeloCpf(String cpf, DisplayFilter displayFilter) throws PersistenciaException {
        return todosAssociados.listarPeloCpf(cpf, displayFilter);
    }

    public List<Associado> listarPeloCep(String cep, DisplayFilter displayFilter) throws PersistenciaException {
        return todosAssociados.listarPeloCep(cep, displayFilter);
    }

    public void getTelefones(Associado associado) throws PersistenciaException {
        todosAssociados.getTelefones(associado);
    }
}
